Global motion compensation (GMC) techniques, such as the “sprite” coding technique used in MPEG-4 and a “reference picture resampling” technique in Annex P of H.263+, have been used in advanced video coding. These techniques usually follow similar steps.
Referring to FIG. 1, for each current image frame 12, a reference image 14 is derived based on global motion vectors 16. The global motion vectors 16 take into account global image changes between the previous image frame 18 and the current image frame 12. For example, the global motion vectors 16 account for changes in camera angle, camera zooming, etc. that have occurred between frame 18 and 12. The current image 12 is then coded and decoded using the reference frame 14. For example, the portion of an image in MacroBlock (MB) 20 may be exactly the same in the associated macroblock 22 in reference image 14. If this is the case, then the image information in macroblock 20 does not have to be encoded. The image data in block 22 in reference frame 14 can be copied into macroblock 20 of current image 12.
These GMC techniques have shown their advantages in low-bit-rate video coding by reducing the bit rate and enhancing the visual quality. However, GMC increases computational complexity. For each current image frame 12, the reference image 14 has to be reconstructed or updated in both the encoder and decoder based on the global motion vector 16. This can be especially expensive on the decoder side in terms of computation and memory space.
In other situations, an object may change position from the previous image 18 to the current image 12. A local motion vector 26 identifies where the image information in macroblock 20 has moved from the previous image frame 18. The only information that has to be encoded for macroblock 20 is the local motion vector 26 and any residual differences between the image information in macroblock 20 and the image information in macroblock 28. This local motion vector video coding technique is less computationally complex than GMC but typically requires more bits since the local motion vectors 26 have to be separately encoded and then transmitted or stored for each macroblock 20 in image 12.
The present invention addresses this and other problems associated with the prior art.